home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / examples / sql / sqltable / main.cpp.z / main.cpp
C/C++ Source or Header  |  2002-04-08  |  2KB  |  68 lines

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  4. **
  5. ** This file is part of an example program for Qt.  This example
  6. ** program may be used, distributed and modified without limitation.
  7. **
  8. *****************************************************************************/
  9.  
  10. #include <qapplication.h>
  11. #include <qsqldatabase.h>
  12. #include <qdatatable.h>
  13. #include <qsqlcursor.h>
  14. #include <qmessagebox.h>
  15.  
  16. /* Modify the following to match your environment */
  17. #define DRIVER       "QPSQL7"  /* see the Qt SQL documentation for a list of available drivers */
  18. #define DATABASE     "simpledb" /* the name of your database */
  19. #define USER         "trond"   /* user name with appropriate rights */
  20. #define PASSWORD     "trond"   /* password for USER */
  21. #define HOST         "silverfish.troll.no" /* host on which the database is running */
  22.  
  23. class SimpleCursor : public QSqlCursor
  24. {
  25. public:
  26.     SimpleCursor () : QSqlCursor( "simpletable" ) {}
  27. protected:
  28.     QSqlRecord* primeInsert()
  29.     {
  30.     /* a real-world application would use sequences, or the like */
  31.     QSqlRecord* buf = QSqlCursor::primeInsert();
  32.     QSqlQuery q( "select max(id)+1 from simpletable;" );
  33.     if ( q.next() )
  34.            buf->setValue( "id", q.value(0) );
  35.     return buf;
  36.     }
  37. };
  38.  
  39. int main( int argc, char ** argv )
  40. {
  41.     QApplication a( argc, argv );
  42.  
  43.     QSqlDatabase * db = QSqlDatabase::addDatabase( DRIVER );
  44.     db->setDatabaseName( DATABASE );
  45.     db->setUserName( USER );
  46.     db->setPassword( PASSWORD );
  47.     db->setHostName( HOST );
  48.  
  49.     if( !db->open() ){
  50.     QMessageBox::information( 0, "Unable to open database",
  51.                   db->lastError().databaseText() + "\nPlease read the README file in the sqltable directory for more information.");
  52.     return 1;
  53.     }
  54.  
  55.     SimpleCursor cursor;
  56.  
  57.     QDataTable table( &cursor ); /* data table uses our cursor */
  58.     table.addColumn( "name", "Name" );
  59.     table.addColumn( "address", "Address" );
  60.     table.setSorting( TRUE );
  61.  
  62.     a.setMainWidget( &table );
  63.     table.refresh(); /* load data */
  64.     table.show();    /* show widget */
  65.  
  66.     return a.exec();
  67. }
  68.